"""
描述
蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。

例如，当输入5时，应该输出的三角形为：

1 3 6 10 15

2 5 9 14

4 8 13

7 12

11


输入描述：
输入正整数N（N不大于100）

输出描述：
输出一个N行的蛇形矩阵。
"""
if __name__ == "__main__":
    N = int(input())
    snake_matrix = [[0] * N for num in range(N)]
    print(snake_matrix)
    for i in range(0, N):
        for j in range(0, N - i):
            if i == 0 and j == 0:
                snake_matrix[0][0] = 1
            else:
                if j == 0:
                    snake_matrix[i][j] = snake_matrix[i - 1][j] + i
                else:
                    snake_matrix[i][j] = snake_matrix[i][j - 1] + i + j + 1
            print(snake_matrix[i][j], end=" ")
        print()
